#题目描述
# 有n辆火车，准备按照标号为1，2，3，4，...，n的顺序进站，按顺序进入车站。每辆火车有两个出站方式：
# 出站口1：通过原进站口出站
# 出站口2：通过直行轨道出站
# 关键规则：只有该火车沿着出站口轨道方向上没有其他火车的时，才能从出站口1出站。
# 任务：给定一个出站序列，求最多有多少辆火车可以从出站口1出站。如果给定的出站序列不可能实现，输出-1。




#测试数据
#测试数据说明：第一行整数，表示火车的数量，第二行整数，表示出站序列。

from collections import deque

n = int(input())
p = list(map(int, input().split()))

d = deque()
next_in = 1
count = 0
possible = True

for target in p:
    while True:
        if d and d[-1] == target:
            # 火车在栈顶，可以从出站口1出站
            d.pop()
            count += 1
            break
        elif d and d[0] == target:
            # 火车在栈底，可以从出站口2出站
            d.popleft()
            break
        else:
            # 火车还没进站，继续进站
            if next_in > n:
                possible = False
                break
            d.append(next_in)
            next_in += 1
    if not possible:
        break

if possible:
    print(count)
else:
    print(-1)

"""

5
1 3 5 2 4

预期输出
4


4 
4 2 1 3
预期输出
-1
"""